Pengenalan
Selamat datang di laman dokumentasi SDK Android Duitku. Integrasikan SDK ini untuk mulai bertransaksi menggunakan Duitku di aplikasi android anda.
Alur Transaksi
- Checkout, Client melakukan checkout didalam aplikasi android kemudian aplikasi mengirimkan request transaksi ke server merchant.
- Request Transaction, server merchant meneruskan request transaksi ke server duitku.
- Get Request Transaction, server duitku mengirimkan request transaksi yang kemudian diterima oleh server merchant.
- Response, Server merchant mengirimkan response ke client.
- Callback Notification, server duitku mengirimkan callback notification kepada merchant.
Environment
Standar IDE untuk pengembangan aplikasi adalah android studio versi 3.4 keatas. Untuk lebih jelas, dibawah ini adalah detail spesifikasi
- Versi gradle 3.4.1 keatas
- Target sdk version 29 (Android API level 29 Direkomendasikan)
- Versi SDK minimal API 24 (Android 7 Nougat)
item pendukung pengembangan aplikasi dapat diperoleh dalam dokumentasi :
- Contoh project
- Contoh code untuk request transaksi
- Contoh code untuk cek transaksi
- Contoh code untuk payment method
Integrasi Sistem
Tambahkan Librari Duitku SDK ke project merchant
Import Duitku SDK Library ke build gradle diaplikasi anda
import Duitku SDK Library
implementation 'com.duitku:duitku-android-sdk:1.0.2-beta-1'
Tambahkan Duitku SDK Class
Untuk mendukung integrasi, merchant membutuhkan Duitku SDK Class untuk menjalankan fungsi SDK diproject merchant
import Duitku SDK Class
import 'com.duitku.sdk.DuitkuCallback.DuitkuCallbackTransaction;'
import 'com.duitku.sdk.DuitkuClient;'
import 'com.duitku.sdk.DuitkuUtility.BaseKitDuitku;'
import 'com.duitku.sdk.DuitkuUtility.DuitkuKit;'
import 'com.duitku.sdk.Model.ItemDetails;'
Extends DuitkuClient
public class MainActivity extends DuitkuClient
Deklarasikan DuitkuKit di Activity
DuitkuKit duitku ;
DuitkuCallbackTransaction callbackKit ;
Tambahkan Fungsi ini Untuk Mendapatkan Callback Transaksi
public void onSuccessTransaction(String status, String reference, String amount, String Code) {
Toast.makeText(MainActivity.this,"Transaction"+status,Toast.LENGTH_LONG).show();
clearSdkTask(); //REQUIRED
super.onSuccessTransaction(status, reference, amount, Code);
}
@Override
public void onPendingTransaction(String status, String reference, String amount, String Code) {
Toast.makeText(MainActivity.this,"Transaction"+status,Toast.LENGTH_LONG).show();
clearSdkTask(); //REQUIRED
super.onPendingTransaction(status, reference, amount, Code);
}
@Override
public void onCancelTransaction(String status, String reference, String amount, String Code) {
Toast.makeText(MainActivity.this,"Transaction :"+status,Toast.LENGTH_LONG).show();
clearSdkTask(); //REQUIRED
super.onCancelTransaction(status, reference, amount, Code);
}
Dari contoh kode diatas, ada 3 perbedaan fungsi untuk menangkap Callback Transaksi,
anda membutuhkan 3 halaman activity untuk menampilan status transaksi ke customer anda.
kita membuat contoh dengan Toast.
OnResume Activity
protected void onResume() {
super.onResume();
run(MainActivity.this); //context
}
Request Transaksi ke Server Merchant
Tambahkan method ini untuk melakukan Request Transaksi Ke Server Merchant
private void requestTransaction(){
//set false if callback from duitku
callbackKit.setCallbackFromMerchant(true);
run(MainActivity.this); //context
//set base url merchant
BaseKitDuitku.setBaseUrlApiDuitku("Merchant site url");
BaseKitDuitku.setUrlRequestTransaction("Request transaction module");
BaseKitDuitku.setUrlCheckTransaction("Check transaction module");
BaseKitDuitku.setUrlPaymentMethodList("List Payment module");
duitku.setPaymentAmount("10000");
duitku.setProductDetails("");
duitku.setEmail("");
duitku.setPhoneNumber("");
duitku.setAdditionalParam(""); //optional
duitku.setMerchantUserInfo(""); //optional
duitku.setCustomerVaName("");
duitku.setExpiryPeriod("");
duitku.setCallbackUrl("http://merchantsite.com");
duitku.setReturnUrl("http://merchantsite.com");
// Customer Detail
duitku.setFirstName("John");//optional
duitku.setLastName("Doe");//optional
// Address
duitku.setAddress("Jl. Kembangan Raya");//optional
duitku.setCity("Jakarta");//optional
duitku.setPostalCode("11530");//optional
duitku.setCountryCode("ID");//optional
//set item details
ItemDetails itemDetails = new ItemDetails(10000,2,"shoes");
ArrayList<ItemDetails> arrayList = new ArrayList<ItemDetails> ();
arrayList.add(itemDetails);
duitku.setItemDetails(arrayList);
}
Function | Description |
---|---|
callbackKit.setCallbackFromMerchant | digunakan untuk set notifikasi dari Duitku atau dari Merchant. Set true untuk notifikasi dari merchant, atau false untuk notifikasi dari merchant |
run(MainActivity.this) | digunakan untuk menjalankan SDK Duitku. |
BaseKitDuitku.setBaseUrlApiDuitku | digunakan untuk set merchant site url untuk mengakses modul request transakasi dan modul cek transaksi. |
BaseKitDuitku.setUrlRequestTransaction | digunakan untuk set modul request transaksi. |
BaseKitDuitku.setUrlCheckTransaction | digunakan untuk set modul cek transaksi. |
BaseKitDuitku.setUrlPaymentMethodList | digunakan untuk set modul API metode pembayaran. |
duitku.setPaymentAmount | digunakan untuk memasukan nominal transaksi. |
duitku.setProductDetails | digunakan untuk memasukan detail produk transaksi. |
duitku.setEmail | digunakan untuk memasukan alamat email customer merchant, mandatory. |
duitku.setPhoneNumber | digunakan untuk memasukan nomor telepon customer merchant, mandatory. |
duitku.setAdditionalParam | digunakan untuk memasukan parameter tambahan. |
duitku.setMerchantUserInfo | digunakan untuk memasukan info customer merchant. |
duitku.setCustomerVaName | digunakan untuk set nama customer di VA, customer merchant dapat melihat nama mereka di mobile banking atau ATM, fungsi ini hanya digunakan untuk channel pembayaran VA. |
duitku.setExpiryPeriod | digunakan untuk set waktu expiry pembayaran. |
duitku.setCallbackUrl | digunakan untuk set merchant callback url, ini harus di arahkan ke server merchant untuk mendapatkan atau memperbarui status transaksi di database merchant |
duitku.setReturnUrl | digunakan untuk set merchant return url, ini harus di arahkan ke server merchant untuk redirect setelah pembayaran selesai |
duitku.setItemDetails | digunakan untuk memuat item detail pembelian customer, merchant dapat membuat ItemDetail Object untuk mengisi detail. Price di detail adalah total harga item pembelian. merchant dapat melihat di contoh project kami. |
Set Toolbar menjadi No Action Bar
Merchant perlu set Toolbar menjadi No Action Bar untuk menjalankan Android SDK Duitku
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
Memulai Payment Function
Memanggil Fungsi StartPayment
startPayment(MainActivity.this);
Merchant dapat memanggil fungsi startPayment() untuk melanjutkan process pembayaran.
Penanganan Error
Exception from call site #1 bootstrap
jika anda mendapatkan eror seperti ini, kamu dapat menambahkan code dibawah ini di app.gradle
compileOptions {
targetCompatibility = "8"
sourceCompatibility = "8"
}
Mendapat Error At WebView
jika anda mendapatkan eror seperti ini, merchant dapat menambahkan depedency ini di app.gradle
implementation 'androidx.appcompat:appcompat:1.0.2'
Sisi Server Merchant
dibawah ini adalah modul server merchant untuk transaksi dengan Duitku Android SDK
Deskripsi | Value |
---|---|
Alamat URL Server Merchant | Example, https://www.merchantsite.com |
Permintaan Transaksi | unduh |
Cek Status Transaksi | unduh |
Daftar Kanal Pembayaran | unduh |
Contoh Project
Berikut contoh project Sample-project